package com.tong.cloud.redisson.idempotent.annotation;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

@Inherited
@Target(ElementType.METHOD)
@Retention(value = RetentionPolicy.RUNTIME)
public @interface Idempotent {

    /***
     * 使用spel 表达式 用#来引入参数
     */
    String key() default "";

    /**
     * 有效期
     */
    long expireTime() default 1;

    /**
     * 时间单位
     * @return
     */
    TimeUnit timeUnit() default TimeUnit.SECONDS;

    /**
     * 错误提示信息
     */
    String message() default "重复请求稍后重试";

    /**
     * 是否在业务完成后删除key
     */
    boolean autoDel() default false;
}
